Опубликовано: 28 мая 2025 г.
Если не указано иное, следующие изменения применяются к новейшему выпуску бета-канала Chrome для Android, ChromeOS, Linux, macOS и Windows. Узнайте больше о перечисленных здесь функциях по предоставленным ссылкам или из списка на ChromeStatus.com . Chrome 138 является бета-версией по состоянию на 28 мая 2025 года. Вы можете загрузить последнюю версию на Google.com для настольного компьютера или в Google Play Store на Android.
CSS и пользовательский интерфейс
В этом выпуске добавлены шесть новых функций CSS и пользовательского интерфейса.
CSS ключевое слово для stretch
размера
Ключевое слово для свойств размера CSS (например, width
и height
), которое позволяет элементам увеличиваться, чтобы точно заполнить доступное пространство содержащего их блока. Это похоже на 100%
, за исключением того, что полученный размер применяется к полю поля элемента вместо поля, указанного box-sizing
. Использование этого ключевого слова позволяет элементу сохранять свои поля, оставаясь при этом максимально большим.
Функции CSS, связанные со знаками: abs()
, sign()
Знаковые функции abs()
и sign()
вычисляют различные функции, связанные со знаком их аргумента.
Переменная CSS env для масштабирования шрифта на уровне ОС
Предоставляет предпочитаемый пользователем масштаб шрифта в CSS. В настоящее время непрактично, чтобы страница определяла, изменил ли пользователь свой предпочитаемый размер шрифта в настройках операционной системы. Эта переменная среды CSS будет отражать масштаб, выбранный пользователем.
CSS sibling-index()
и sibling-count()
Функции sibling-index()
и sibling-count()
могут использоваться как целые числа в значениях свойств CSS для стилизации элемента на основе его положения среди его братьев и сестер или общего количества братьев и сестер соответственно. Эти функции могут использоваться напрямую как целые числа, но что более интересно внутри выражений calc()
.
li {
animation-delay: calc(0.1s * sibling-index());
}
Функциональная нотация прогресса интерполяции: функция CSS progress()
Функциональная нотация progress()
представляет собой математическую функцию, которая возвращает значение <number>
, представляющее положение одного вычисления (значение прогресса) между двумя другими вычислениями (начальное значение прогресса и конечное значение прогресса).
API перечисления сегментов области просмотра
API сегментов области просмотра позволяет разработчикам адаптировать свой веб-макет для целевых складных устройств. Сегменты области просмотра определяют положение и размеры логически отдельной области области просмотра. Сегменты области просмотра создаются, когда область просмотра разделена одной или несколькими аппаратными функциями (например, сгибом или шарниром между отдельными дисплеями), которые действуют как разделитель; сегменты — это области области просмотра, которые разработчик может рассматривать как логически отдельные.
Веб-API
Добавить поддержку метаданных ориентации видеокадра в WebCodecs
Вводит значения rotation: int
и flip: bool
для различных интерфейсов, связанных с видео, в WebCodecs, чтобы разработчики могли работать с источниками кадров, имеющими ориентацию (например, камеры Android и некоторые носители). Интерфейс VideoFrame
расширяет возможности создания VideoFrame с произвольным вращением и переворотом, а также методы доступа к этой информации в объекте VideoFrame
. Объект VideoDecoderConfig
получает поля rotation
и flip
, которые автоматически выдаются в декодированных объектах VideoFrame. Класс VideoEncoder
получает механизмы для передачи информации о вращении и перевороте из encode()
в VideoDecoderConfig
, выдаваемой как часть EncodedVideoChunkMetadata
. Если encode()
вызывается с кадрами с другой ориентацией, будет выдано нефатальное исключение. Метод configure()
можно использовать для сброса разрешенной ориентации.
API отчетов о сбоях: is_top_level
и visibility_state
Эта функция добавляет строковые поля is_top_level
и visibility_state
в тело API отчетов о сбоях, которое отправляется в конечную точку отчетов по умолчанию для отчетов о сбоях.
Экранирование <
и >
в атрибутах при сериализации
Экранирование <
и >
в значениях атрибутов при сериализации. Это снижает риск мутационных XSS-атак, которые происходят, когда значение атрибута интерпретируется как токен начального тега после сериализации и повторного анализа.
Политика целостности для скриптов
Subresource-Integrity (SRI) позволяет разработчикам убедиться, что активы, которые они намереваются загрузить, действительно являются активами, которые они загружают. Но в настоящее время у разработчиков нет способа убедиться, что все их скрипты проверены с помощью SRI. Заголовок Integrity-Policy
дает разработчикам возможность утверждать, что каждый ресурс определенного типа должен быть проверен на целостность. Если ресурс этого типа попытаются загрузить без метаданных целостности, эта попытка не удастся и вызовет отчет о нарушении.
Предсказуемая сообщаемая квота хранения
Сообщайте прогнозируемую квоту хранения из API оценки StorageManager для сайтов, которые не имеют неограниченных разрешений на хранение. Можно определить режим просмотра пользователя с помощью сообщаемой квоты хранения, поскольку доступное пространство для хранения значительно меньше в режиме инкогнито, чем в обычном режиме.
Это смягчение, которое предотвращает обнаружение режима просмотра пользователя с помощью API хранилища путем сообщения искусственной квоты, равной использованию + min(10 GiB, диск округляется до ближайшего 1 GiB), во всех режимах просмотра для сайтов с ограниченными разрешениями на хранение. Сайты с неограниченными разрешениями на хранение не будут затронуты. Принудительная квота также не будет затронута.
событие pushsubscriptionchange
при повторной подписке
Запускайте событие pushsubscriptionchange
в service worker, когда источнику, для которого push-подписка существовала в прошлом, но которая была отозвана из-за изменения разрешения (с предоставленного на отклонение/по умолчанию), повторно предоставляется разрешение на уведомление. Событие будет запущено с пустыми oldSubscription
и newSubscription
.
Правила спекуляции: добавьте prefetchCache
и prerenderCache
в заголовок Clear-Site-Data
Два новых значения для заголовка Clear-Site-Data
которые помогут разработчикам нацелиться на очистку кэша prerender и prefetch: prefetchCache
и prerenderCache
. Они могут быть отправлены в любых запросах и не обязательно должны быть сделаны в запросе документа (например, они могут быть возвращены в ответах на вызовы API добавления в корзину или входа и выхода для очистки предположений об изменении состояния).
Правила спекуляции: поле target_hint
Это расширяет синтаксис правил спекуляции, позволяя разработчикам указывать поле target_hint
. Это поле предоставляет подсказку для указания целевого navigable, где предварительно отрендеренная страница в конечном итоге будет активирована. Если _blank
указано как подсказка, предварительно отрендеренная страница может быть активирована для navigable, открытого window.open()
. Поле не поддерживается для предварительной выборки.
Строгая политика единого источника для API доступа к хранилищу
Настраивает семантику API доступа к хранилищу для строгого соблюдения политики единого источника в отношении безопасности. То есть, использование document.requestStorageAccess()
во фрейме по умолчанию прикрепляет файлы cookie только к запросам к источнику iframe (не сайту).
API сумматора
API JavaScript для создания резюме входного текста, подкрепленное языковой моделью ИИ. Браузеры и операционные системы все чаще должны получать доступ к языковой модели. Предоставляя эту встроенную модель, мы избегаем необходимости загрузки каждой веб-страницей собственной многогигабайтной языковой модели или отправки входного текста сторонним API. API-интерфейс сумматора, в частности, предоставляет высокоуровневый API для взаимодействия с языковой моделью с целью суммирования входных данных для различных вариантов использования способом, который не зависит от конкретной рассматриваемой языковой модели. Доступна корпоративная политика ( GenAILocalFoundationalModelSettings
) для отключения загрузки базовой модели, что сделает этот API недоступным.
Узнайте больше в статье Создание кратких резюме с помощью встроенного ИИ .
API детектора языка
JavaScript API для определения языка, используемого в определенном тексте, с определенными уровнями уверенности. Это важное дополнение к определению языка перевода, которое может использоваться в сочетании с Translator API . Например, возьмите пользовательский ввод на неизвестном языке, определите его язык, а затем переведите его на определенный целевой язык. Хотя браузеры часто уже имеют возможности определения языка, это дает ту же мощность веб-разработчикам с JavaScript API, дополняя API перевода.
Доступна корпоративная политика ( GenAILocalFoundationalModelSettings
), которая позволяет отключить загрузку базовой модели, что сделает этот API недоступным.
Подробнее читайте в статье Определение используемого языка с помощью встроенного ИИ .
API переводчика
JavaScript API для предоставления возможностей языкового перевода веб-страницам. Хотя браузеры все чаще предлагают языковой перевод своим пользователям, такие возможности перевода также могут быть полезны веб-разработчикам. Это особенно актуально, когда встроенные возможности перевода браузера не могут помочь, например, в случае с живыми и интерактивными сервисами. Корпоративная политика ( GenAILocalFoundationalModelSettings
) доступна для отключения загрузки базовой модели, что сделает этот API недоступным.
Узнайте больше в статье Перевод со встроенным ИИ .
Расширения области действия веб-приложений
Добавляет поле манифеста веб-приложения "scope_extensions"
, позволяющее веб-приложениям расширять свою область действия на другие источники. Это позволяет сайтам, которые контролируют несколько поддоменов и доменов верхнего уровня, быть представленными как одно веб-приложение. Требует перечисленных источников для подтверждения связи с веб-приложением с помощью файла конфигурации .well-known/web-app-origin-association
.
Веб-сериал через Bluetooth на Android
Эта функция позволяет веб-страницам и веб-приложениям подключаться к последовательным портам через Bluetooth на устройствах Android . Chrome на Android теперь поддерживает Web Serial API через Bluetooth RFCOMM. Существующие корпоративные политики ( DefaultSerialGuardSetting
, SerialAllowAllPortsForUrls
, SerialAllowUsbDevicesForUrls
, SerialAskForUrls
и SerialBlockedForUrls
) на других платформах включены в состояниях future_on для Android. Все политики, кроме SerialAllowUsbDevicesForUrls
, будут включены после включения функции. SerialAllowUsbDevicesForUrls
будет включен при будущем запуске после того, как Android предоставит поддержку проводных последовательных портов на системном уровне.
Устаревания и удаления
В этой версии Chrome представлены следующие устаревания и удаления. Посетите ChromeStatus.com для получения списков запланированных устаревших функций, текущих устаревших функций и предыдущих удалений.
В этой версии Chrome устарели две функции.
Отменить асинхронное удаление диапазона для расширений Media Source
Стандарт Media Source давно изменился, чтобы запретить неоднозначно определенное поведение, включающее асинхронное удаление диапазонов:
-
SourceBuffer.abort()
больше не прерывает операцииSourceBuffer.remove()
. - Параметр
MediaSource.duration
больше не может обрезать текущий буферизованный медиафайл.
Теперь в обоих случаях будут возникать исключения.
Удалить резервный SwiftShader
Разрешение автоматического отката к WebGL, поддерживаемому программным рендерером SwiftShader, устарело, и создание контекста WebGL будет завершаться ошибкой вместо отката к SwiftShader. Это было сделано по двум основным причинам:
- SwiftShader представляет высокий риск безопасности из-за JIT-кода, работающего в процессе графического процессора Chromium.
- Пользователи испытывают неприятные ощущения при откате от высокопроизводительного WebGL с поддержкой GPU к реализации с поддержкой CPU. Пользователи не могут контролировать это поведение, и его трудно описать в отчетах об ошибках.
В течение периода устаревания предупреждение будет появляться в консоли Chrome DevTools при создании контекста WebGL и поддержке SwiftShader. Передача --enable-unsafe-swiftshader
удалит это предупреждающее сообщение.